// 简    述：
// 创建标志：
// 修改标志：

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include "../../../Utils/MessageQueue/MsgBuf.h"
using namespace std ;


class itemInfo { 
public :
	public: string guid ;
	public: int32_t entry ;
	public: int32_t bagType ;
	public: int32_t slot ;
	public: int32_t stack ;
	public: int32_t entry ;
	public: int32_t bind ;
	public: int32_t color ;
	public: int32_t quality ;
	public: int32_t unEffectTime ;
	public: uint32_t baseAttributeTypeLength ;
	private: uint32_t privateBaseAttributeTypeLength ;
	private: int32_t *privateBaseAttributeType ;
	public: uint32_t baseAttributeTypeMaxLength() ;
	public: int32_t* baseAttributeType() ;
	public: void mallocbaseAttributeType( uint32_t length ) ;
	public: uint32_t baseAttributeValueLength ;
	private: uint32_t privateBaseAttributeValueLength ;
	private: int32_t *privateBaseAttributeValue ;
	public: uint32_t baseAttributeValueMaxLength() ;
	public: int32_t* baseAttributeValue() ;
	public: void mallocbaseAttributeValue( uint32_t length ) ;
	public: uint32_t bonusAttributeTypeLength ;
	private: uint32_t privateBonusAttributeTypeLength ;
	private: int32_t *privateBonusAttributeType ;
	public: uint32_t bonusAttributeTypeMaxLength() ;
	public: int32_t* bonusAttributeType() ;
	public: void mallocbonusAttributeType( uint32_t length ) ;
	public: uint32_t bonusAttributeValueLength ;
	private: uint32_t privateBonusAttributeValueLength ;
	private: int32_t *privateBonusAttributeValue ;
	public: uint32_t bonusAttributeValueMaxLength() ;
	public: int32_t* bonusAttributeValue() ;
	public: void mallocbonusAttributeValue( uint32_t length ) ;
	public: int32_t durability ;
	public: string json ;
private :
	static const uint16_t messageId ;
public :
	itemInfo() ;
	~itemInfo() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
	CMsgTyped* Unserialize( CMsgTyped *msgTyped ) ;
} ;

class DeleteItem { 
public :
	public: string guid ;
private :
	static const uint16_t messageId ;
public :
	DeleteItem() ;
	~DeleteItem() ;
	CMsgTyped* Unserialize( CMsgTyped *msgTyped ) ;
} ;

class BagInit { 
public :
	public: int32_t bagType ;
	public: int32_t itemCount ;
	public: uint32_t itemsLength ;
	private: uint32_t privateItemsLength ;
	private: itemInfo *privateItems ;
	public: uint32_t itemsMaxLength() ;
	public: itemInfo* items() ;
	public: void mallocitems( uint32_t length ) ;
private :
	static const uint16_t messageId ;
public :
	BagInit() ;
	~BagInit() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
} ;

class BagUpdate { 
public :
	public: int32_t bagType ;
	public: int32_t itemCount ;
	public: uint32_t itemsLength ;
	private: uint32_t privateItemsLength ;
	private: itemInfo *privateItems ;
	public: uint32_t itemsMaxLength() ;
	public: itemInfo* items() ;
	public: void mallocitems( uint32_t length ) ;
private :
	static const uint16_t messageId ;
public :
	BagUpdate() ;
	~BagUpdate() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
} ;

class BagDelete { 
public :
	public: int32_t bagType ;
	public: int32_t itemCount ;
	public: uint32_t itemsLength ;
	private: uint32_t privateItemsLength ;
	private: int32_t *privateItems ;
	public: uint32_t itemsMaxLength() ;
	public: int32_t* items() ;
	public: void mallocitems( uint32_t length ) ;
private :
	static const uint16_t messageId ;
public :
	BagDelete() ;
	~BagDelete() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
} ;

